import { isIdCard } from '../regexp/isIdCard.js';

/**
 * 
 * @desc 根据身份证号返回年龄。
 * @param  {val} string 身份证号。
 * @return number 年龄
 */
function getAgeByIDcard(identityCard) {
	let len = (identityCard + "").length;
	let result = isIdCard(identityCard);
	if(result === true) {
		let strBirthday = "";
		if (len == 18)//处理18位的身份证号码从号码中得到生日和性别代码
		{
		    strBirthday = identityCard.substr(6, 4) + "/" + identityCard.substr(10, 2) + "/" + identityCard.substr(12, 2);
		}
		if (len == 15) {
		    strBirthday = "19" + identityCard.substr(6, 2) + "/" + identityCard.substr(8, 2) + "/" + identityCard.substr(10, 2);
		}
		//时间字符串里，必须是“/”
		let birthDate = new Date(strBirthday);
		let nowDateTime = new Date();
		let age = nowDateTime.getFullYear() - birthDate.getFullYear();
		//再考虑月、天的因素;.getMonth()获取的是从0开始的，这里进行比较，不需要加1
		if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) {
		    age--;
		}
		return age;
	}
	else {
		return result;
	}
}

export { getAgeByIDcard };